# -*- coding: utf-8 -*-
import scrapy

from scrapy.cmdline import execute
from my_spider.items import MySpiderItem

execute()

class MainSpider(scrapy.Spider):
    # 用于区分别的Spider，名字必须唯一
    name = "itcast"
    # 允许搜索的域名范围
    #allowed_domains = ['www.huxiu.com']
    allowed_domains = ['itcast.com']
    # 启动初始爬取的url
    start_urls = {
        "http://www.itcast.cn/channel/teacher.shtml",
    }
    # 是spider的一个方法。 被调用时，每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data)，提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象
    def parse(self,response):
        items = []

        for each in response.xpath("//div[@class='li_txt']"):
            # 将我们得到的数据封装到一个 `ItcastItem` 对象
            item = MySpiderItem()
            # extract()方法返回的都是unicode字符串
            name = each.xpath("h3/text()").extract()
            title = each.xpath("h4/text()").extract()
            info = each.xpath("p/text()").extract()

            # xpath返回的是包含一个元素的列表
            item['name'] = name[0]
            item['title'] = title[0]
            item['info'] = info[0]

            items.append(item)

        # 直接返回最后数据
        return items